﻿
using System;
using System.Collections;
using System.IO;
using System.Data.SqlClient;
using System.Globalization;
using System.Runtime.Serialization;
using ProtoBuf;/*https://github.com/ServiceStack/ServiceStack/tree/master/lib*/
using ServiceStack.Text;/*https://github.com/ServiceStack/ServiceStack.Text*/
using V82;
using V82.ОбщиеОбъекты;
using V82.СправочникиСсылка;
using V82.ДокументыСсылка;
using V82.Перечисления;//Ссылка;
namespace V82.СправочникиСсылка
{
	///<summary>
	///(Общ)
	///</summary>
	[ProtoContract]
	[DataContract]
	public partial class Организации:СправочникСсылка,IСериализаторProtoBuf,IСериализаторJson
	{
		public static readonly Guid ГуидКласса = new Guid("a86305d7-b8a1-4312-901f-2ade3efdb351");
		public static readonly DateTime ВерсияКласса = DateTime.ParseExact("20120928012011.000", new string[] {"yyyyMMddHHmmss.fff"}, CultureInfo.InvariantCulture, DateTimeStyles.None);
		public static readonly long КонтрольнаяСуммаКласса = 123;
		[DataMember]
		[ProtoMember(1)]
		public Guid Ссылка {get;set;}
		[DataMember]
		[ProtoMember(2)]
		public long Версия {get;set;}
		public string ВерсияДанных {get;set;}
		/*static хэш сумма состава и порядка реквизитов*/
		/*версия класса восстановленного из пакета*/
		public bool ПометкаУдаления {get;set;}
		public bool Предопределенный {get;set;}
		public string/*9*/ Код {get;set;}
		[DataMember(Name = "Представление")]//Проверить основное представление.
		[ProtoMember(3)]
		public string/*50*/ Наименование {get;set;}
		///<summary>
		///(Общ)
		///</summary>
		public string/*(3)*/ Префикс {get;set;}
		///<summary>
		///(Регл)
		///</summary>
		public string/*(12)*/ ИНН {get;set;}
		///<summary>
		///(Регл)
		///</summary>
		public string/*(9)*/ КПП {get;set;}
		///<summary>
		///(Регл)
		///</summary>
		public string/*(14)*/ РегистрационныйНомерПФР {get;set;}//Регистрационный номер ПФР
		///<summary>
		///(Общ)
		///</summary>
		public V82.СправочникиСсылка.Организации ГоловнаяОрганизация {get;set;}//Головная организация
		///<summary>
		///(Общ)
		///</summary>
		public string/*(0)*/ НаименованиеПолное {get;set;}//Полное наименование
		///<summary>
		///(Регл)
		///</summary>
		public string/*(10)*/ КодПоОКПО {get;set;}//Код по ОКПО
		///<summary>
		///(Регл)
		///</summary>
		public string/*(11)*/ КодПоОКАТО {get;set;}//Код по ОКАТО
		///<summary>
		///(Регл)
		///</summary>
		public string/*(4)*/ КодИМНС {get;set;}//Код ИФНС
		///<summary>
		///(Регл)
		///</summary>
		public decimal/*(5.2)*/ РайонныйКоэффициент {get;set;}//Районный коэффициент
		///<summary>
		///(Общ)
		///</summary>
		public V82.Перечисления/*Ссылка*/.ЮрФизЛицо ЮрФизЛицо {get;set;}//Юр. / физ. лицо
		///<summary>
		///(Регл)
		///</summary>
		public V82.СправочникиСсылка.ТерриториальныеУсловия ТерриториальныеУсловияПФР {get;set;}//Территориальные условия ПФР
		///<summary>
		///(Общ)
		///</summary>
		public V82.СправочникиСсылка.БанковскиеСчета ОсновнойБанковскийСчет {get;set;}//Основной банковский счет
		public V82.Перечисления/*Ссылка*/.ВидыСтавокЕСНиПФР ВидСтавокЕСНиПФР {get;set;}//Вид ставок ЕСН и ПФР
		public string/*(150)*/ НаименованиеПлательщикаПриПеречисленииНалогов {get;set;}//Наименование плательщика при перечислении в бюджет
		public bool ИностраннаяОрганизация {get;set;}//Иностранная организация
		public DateTime ДатаРегистрации {get;set;}//Дата государственной регистрации
		public string/*(2)*/ КодОКОПФ {get;set;}//Код ОКОПФ
		public string/*(254)*/ НаименованиеОКОПФ {get;set;}//Наименование ОКОПФ
		public string/*(2)*/ КодОКФС {get;set;}//Код ОКФС
		public string/*(254)*/ НаименованиеОКФС {get;set;}//Наименование ОКФС
		public string/*(25)*/ СвидетельствоСерияНомер {get;set;}//Серия и номер свидетельства о постановке на учет
		public DateTime СвидетельствоДатаВыдачи {get;set;}//Дата выдачи свидетельства о постановке на учет
		public string/*(254)*/ СвидетельствоНаименованиеОргана {get;set;}//Наименование налогового органа, выдавшего свидетельство
		public string/*(4)*/ СвидетельствоКодОргана {get;set;}//Код налогового органа, выдавшего свидетельство
		///<summary>
		///Заполняется в случае, если организация не российская
		///</summary>
		public V82.СправочникиСсылка.КлассификаторСтранМира СтранаРегистрации {get;set;}//Страна регистрации
		public V82.СправочникиСсылка.КлассификаторСтранМира СтранаПостоянногоМестонахождения {get;set;}//Страна постоянного местонахождения
		public string/*(50)*/ КодВСтранеРегистрации {get;set;}//Код налогоплательщика в стране регистрации
		public string/*(15)*/ ОГРН {get;set;}
		///<summary>
		///(Общ)
		///</summary>
		public string/*(254)*/ НаименованиеИнострОрганизации {get;set;}//Полное наименование иностранной организации
		///<summary>
		///(Регл)
		///</summary>
		public string/*(14)*/ РегистрационныйНомерФСС {get;set;}//Регистрационный номер ФСС
		public string/*(254)*/ НаименованиеИМНС {get;set;}//Наименование ИФНС
		public string/*(8)*/ КодОКВЭД {get;set;}//Код основного вида деятельности по ОКВЭД
		public string/*(254)*/ НаименованиеОКВЭД {get;set;}//Наименование основного вида деятельности по ОКВЭД
		public string/*(5)*/ КодОКОНХ {get;set;}//Код ОКОНХ
		public V82.СправочникиСсылка.ФизическиеЛица ИндивидуальныйПредприниматель {get;set;}//Индивидуальный предприниматель
		public bool УдалитьОбменЗадействован {get;set;}//Удалить обмен задействован
		public string/*(7)*/ ОбменКодАбонента {get;set;}//Код абонента
		public string/*(0)*/ ОбменКаталогОтправкиДанныхОтчетности {get;set;}//Каталог выкладки данных отчетности для обмена с ИФНС
		public string/*(0)*/ ОбменКаталогПрограммыЭлектроннойПочты {get;set;}//Каталог программы электронной почты для обмена с ИФНС
		///<summary>
		///(Регл)
		///</summary>
		public decimal/*(5.2)*/ РайонныйКоэффициентРФ {get;set;}//Районный коэффициент РФ
		///<summary>
		///(Общ)
		///</summary>
		public bool ОтражатьВРегламентированномУчете {get;set;}//Отражать в регламентированном учете
		public string/*(4)*/ КодИФНСПолучателя {get;set;}//Код ИФНС - получателя отчетности
		public string/*(100)*/ НаименованиеТерриториальногоОрганаПФР {get;set;}//Наименование территориального органа ПФР
		public string/*(160)*/ НаименованиеСокращенное {get;set;}//Наименование сокращенное
		public V82.Перечисления/*Ссылка*/.ВидыОбменаСКонтролирующимиОрганами ВидОбменаСКонтролирующимиОрганами {get;set;}//Вид обмена с контролирующими органами
		public V82.СправочникиСсылка.УчетныеЗаписиДокументооборота УчетнаяЗаписьОбмена {get;set;}//Учетная запись обмена
		public string/*(7)*/ КодОрганаПФР {get;set;}//Код органа ПФР
		///<summary>
		///Код органа Федеральной службы государственной статистики
		///</summary>
		public string/*(5)*/ КодОрганаФСГС {get;set;}//Код органа ФСГС
		///<summary>
		///(Регл)
		///</summary>
		public string/*(14)*/ ДополнительныйКодФСС {get;set;}//Дополнительный код ФСС
		///<summary>
		///(Регл)
		///</summary>
		public string/*(5)*/ КодПодчиненностиФСС {get;set;}//Код подчиненности ФСС
		public decimal/*(5)*/ ЦифровойИндексОбособленногоПодразделения {get;set;}//Цифровой индекс обособленного подразделения:
		///<summary>
		///(Регл)
		///</summary>
		public string/*(15)*/ РегистрационныйНомерТФОМС {get;set;}//Регистрационный номер ТФОМС
		///<summary>
		///(Регл)
		///</summary>
		public string/*(14)*/ ИПРегистрационныйНомерПФР {get;set;}//Регистрационный номер ПФР индивидуального предпринимателя
		///<summary>
		///(Регл)
		///</summary>
		public string/*(10)*/ ИПРегистрационныйНомерФСС {get;set;}//Регистрационный номер ФСС индивидуального предпринимателя
		///<summary>
		///(Регл)
		///</summary>
		public string/*(5)*/ ИПКодПодчиненностиФСС {get;set;}//Код подчиненности ФСС индивидуального предпринимателя
		///<summary>
		///(Регл)
		///</summary>
		public string/*(15)*/ ИПРегистрационныйНомерТФОМС {get;set;}//Регистрационный номер ТФОМС индивидуального предпринимателя
		public string/*(135)*/ НаименованиеТерриториальногоОрганаФСС {get;set;}//Наименование территориального органа ФСС
		
		public Организации()
		{
		}
		
		public Организации(byte[] УникальныйИдентификатор)
			: this(УникальныйИдентификатор,0)
		{
		}
		
		public Организации(byte[] УникальныйИдентификатор,int Глубина)
		{
			if (Глубина>3)
			{
				return;
			}
			if (new Guid(УникальныйИдентификатор) == Guid.Empty)
			{
				return;
			}
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = @"Select top 1 
					_IDRRef [Ссылка]
					,_Version [Версия]
					,_Marked [ПометкаУдаления]
					,_IsMetadata [Предопределенный]
					,_Code [Код]
					,_Description [Наименование]
					,_Fld1550 [Префикс]
					,_Fld1526 [ИНН]
					,_Fld1536 [КПП]
					,_Fld1553 [РегистрационныйНомерПФР]
					,_Fld1524RRef [ГоловнаяОрганизация]
					,_Fld1543 [НаименованиеПолное]
					,_Fld1535 [КодПоОКПО]
					,_Fld1534 [КодПоОКАТО]
					,_Fld1529 [КодИМНС]
					,_Fld1551 [РайонныйКоэффициент]
					,_Fld1562RRef [ЮрФизЛицо]
					,_Fld1561RRef [ТерриториальныеУсловияПФР]
					,_Fld1549RRef [ОсновнойБанковскийСчет]
					,_Fld1523RRef [ВидСтавокЕСНиПФР]
					,_Fld1542 [НаименованиеПлательщикаПриПеречисленииНалогов]
					,_Fld1527 [ИностраннаяОрганизация]
					,_Fld1525 [ДатаРегистрации]
					,_Fld1532 [КодОКОПФ]
					,_Fld1540 [НаименованиеОКОПФ]
					,_Fld1533 [КодОКФС]
					,_Fld1541 [НаименованиеОКФС]
					,_Fld1558 [СвидетельствоСерияНомер]
					,_Fld1555 [СвидетельствоДатаВыдачи]
					,_Fld1557 [СвидетельствоНаименованиеОргана]
					,_Fld1556 [СвидетельствоКодОргана]
					,_Fld1560RRef [СтранаРегистрации]
					,_Fld1559RRef [СтранаПостоянногоМестонахождения]
					,_Fld1528 [КодВСтранеРегистрации]
					,_Fld1548 [ОГРН]
					,_Fld1538 [НаименованиеИнострОрганизации]
					,_Fld1554 [РегистрационныйНомерФСС]
					,_Fld1537 [НаименованиеИМНС]
					,_Fld1530 [КодОКВЭД]
					,_Fld1539 [НаименованиеОКВЭД]
					,_Fld1531 [КодОКОНХ]
					,_Fld1563RRef [ИндивидуальныйПредприниматель]
					,_Fld1544 [УдалитьОбменЗадействован]
					,_Fld1547 [ОбменКодАбонента]
					,_Fld1545 [ОбменКаталогОтправкиДанныхОтчетности]
					,_Fld1546 [ОбменКаталогПрограммыЭлектроннойПочты]
					,_Fld1552 [РайонныйКоэффициентРФ]
					,_Fld1564 [ОтражатьВРегламентированномУчете]
					,_Fld22976 [КодИФНСПолучателя]
					,_Fld22669 [НаименованиеТерриториальногоОрганаПФР]
					,_Fld26550 [НаименованиеСокращенное]
					,_Fld26551RRef [ВидОбменаСКонтролирующимиОрганами]
					,_Fld26552RRef [УчетнаяЗаписьОбмена]
					,_Fld26553 [КодОрганаПФР]
					,_Fld26554 [КодОрганаФСГС]
					,_Fld26555 [ДополнительныйКодФСС]
					,_Fld26556 [КодПодчиненностиФСС]
					,_Fld26557 [ЦифровойИндексОбособленногоПодразделения]
					,_Fld26558 [РегистрационныйНомерТФОМС]
					,_Fld26559 [ИПРегистрационныйНомерПФР]
					,_Fld26560 [ИПРегистрационныйНомерФСС]
					,_Fld26561 [ИПКодПодчиненностиФСС]
					,_Fld26562 [ИПРегистрационныйНомерТФОМС]
					,_Fld26563 [НаименованиеТерриториальногоОрганаФСС]
					From _Reference105(NOLOCK)
					Where _IDRRef=@УникальныйИдентификатор  ";
					Команда.Parameters.AddWithValue("УникальныйИдентификатор", УникальныйИдентификатор);
					using (var Читалка = Команда.ExecuteReader())
					{
						if (Читалка.Read())
						{
							//ToDo: Читать нужно через GetValues()
							Ссылка = new Guid((byte[])Читалка.GetValue(0));
							var ПотокВерсии = ((byte[])Читалка.GetValue(1));
							Array.Reverse(ПотокВерсии);
							Версия =  BitConverter.ToInt64(ПотокВерсии, 0);
							ВерсияДанных =  Convert.ToBase64String(ПотокВерсии);
							ПометкаУдаления = ((byte[])Читалка.GetValue(2))[0]==1;
							Предопределенный = ((byte[])Читалка.GetValue(3))[0]==1;
							Код = Читалка.GetString(4);
							Наименование = Читалка.GetString(5);
								Префикс = Читалка.GetString(6);
								ИНН = Читалка.GetString(7);
								КПП = Читалка.GetString(8);
								РегистрационныйНомерПФР = Читалка.GetString(9);
								ГоловнаяОрганизация = new V82.СправочникиСсылка.Организации((byte[])Читалка.GetValue(10),Глубина+1);
								НаименованиеПолное = Читалка.GetString(11);
								КодПоОКПО = Читалка.GetString(12);
								КодПоОКАТО = Читалка.GetString(13);
								КодИМНС = Читалка.GetString(14);
								РайонныйКоэффициент = Читалка.GetDecimal(15);
								ЮрФизЛицо = V82.Перечисления/*Ссылка*/.ЮрФизЛицо.ПустаяСсылка.Получить((byte[])Читалка.GetValue(16));
								ТерриториальныеУсловияПФР = new V82.СправочникиСсылка.ТерриториальныеУсловия((byte[])Читалка.GetValue(17),Глубина+1);
								ОсновнойБанковскийСчет = new V82.СправочникиСсылка.БанковскиеСчета((byte[])Читалка.GetValue(18),Глубина+1);
								ВидСтавокЕСНиПФР = V82.Перечисления/*Ссылка*/.ВидыСтавокЕСНиПФР.ПустаяСсылка.Получить((byte[])Читалка.GetValue(19));
								НаименованиеПлательщикаПриПеречисленииНалогов = Читалка.GetString(20);
								ИностраннаяОрганизация = ((byte[])Читалка.GetValue(21))[0]==1;
								ДатаРегистрации = Читалка.GetDateTime(22);
								КодОКОПФ = Читалка.GetString(23);
								НаименованиеОКОПФ = Читалка.GetString(24);
								КодОКФС = Читалка.GetString(25);
								НаименованиеОКФС = Читалка.GetString(26);
								СвидетельствоСерияНомер = Читалка.GetString(27);
								СвидетельствоДатаВыдачи = Читалка.GetDateTime(28);
								СвидетельствоНаименованиеОргана = Читалка.GetString(29);
								СвидетельствоКодОргана = Читалка.GetString(30);
								СтранаРегистрации = new V82.СправочникиСсылка.КлассификаторСтранМира((byte[])Читалка.GetValue(31),Глубина+1);
								СтранаПостоянногоМестонахождения = new V82.СправочникиСсылка.КлассификаторСтранМира((byte[])Читалка.GetValue(32),Глубина+1);
								КодВСтранеРегистрации = Читалка.GetString(33);
								ОГРН = Читалка.GetString(34);
								НаименованиеИнострОрганизации = Читалка.GetString(35);
								РегистрационныйНомерФСС = Читалка.GetString(36);
								НаименованиеИМНС = Читалка.GetString(37);
								КодОКВЭД = Читалка.GetString(38);
								НаименованиеОКВЭД = Читалка.GetString(39);
								КодОКОНХ = Читалка.GetString(40);
								ИндивидуальныйПредприниматель = new V82.СправочникиСсылка.ФизическиеЛица((byte[])Читалка.GetValue(41),Глубина+1);
								УдалитьОбменЗадействован = ((byte[])Читалка.GetValue(42))[0]==1;
								ОбменКодАбонента = Читалка.GetString(43);
								ОбменКаталогОтправкиДанныхОтчетности = Читалка.GetString(44);
								ОбменКаталогПрограммыЭлектроннойПочты = Читалка.GetString(45);
								РайонныйКоэффициентРФ = Читалка.GetDecimal(46);
								ОтражатьВРегламентированномУчете = ((byte[])Читалка.GetValue(47))[0]==1;
								КодИФНСПолучателя = Читалка.GetString(48);
								НаименованиеТерриториальногоОрганаПФР = Читалка.GetString(49);
								НаименованиеСокращенное = Читалка.GetString(50);
								ВидОбменаСКонтролирующимиОрганами = V82.Перечисления/*Ссылка*/.ВидыОбменаСКонтролирующимиОрганами.ПустаяСсылка.Получить((byte[])Читалка.GetValue(51));
								УчетнаяЗаписьОбмена = new V82.СправочникиСсылка.УчетныеЗаписиДокументооборота((byte[])Читалка.GetValue(52),Глубина+1);
								КодОрганаПФР = Читалка.GetString(53);
								КодОрганаФСГС = Читалка.GetString(54);
								ДополнительныйКодФСС = Читалка.GetString(55);
								КодПодчиненностиФСС = Читалка.GetString(56);
								ЦифровойИндексОбособленногоПодразделения = Читалка.GetDecimal(57);
								РегистрационныйНомерТФОМС = Читалка.GetString(58);
								ИПРегистрационныйНомерПФР = Читалка.GetString(59);
								ИПРегистрационныйНомерФСС = Читалка.GetString(60);
								ИПКодПодчиненностиФСС = Читалка.GetString(61);
								ИПРегистрационныйНомерТФОМС = Читалка.GetString(62);
								НаименованиеТерриториальногоОрганаФСС = Читалка.GetString(63);
							//return Ссылка;
						}
						else
						{
							//return null;
						}
					}
				}
			}
		}
		
		public V82.СправочникиОбъект.Организации  ПолучитьОбъект()
		{
			var Объект = new V82.СправочникиОбъект.Организации();
			Объект._ЭтоНовый = false;
			Объект.Ссылка = Ссылка;
			Объект.Версия = Версия;
			Объект.ПометкаУдаления = ПометкаУдаления;
			Объект.Предопределенный = Предопределенный;
			Объект.Код = Код;
			Объект.Наименование = Наименование;
			Объект.Префикс = Префикс;
			Объект.ИНН = ИНН;
			Объект.КПП = КПП;
			Объект.РегистрационныйНомерПФР = РегистрационныйНомерПФР;
			Объект.ГоловнаяОрганизация = ГоловнаяОрганизация;
			Объект.НаименованиеПолное = НаименованиеПолное;
			Объект.КодПоОКПО = КодПоОКПО;
			Объект.КодПоОКАТО = КодПоОКАТО;
			Объект.КодИМНС = КодИМНС;
			Объект.РайонныйКоэффициент = РайонныйКоэффициент;
			Объект.ЮрФизЛицо = ЮрФизЛицо;
			Объект.ТерриториальныеУсловияПФР = ТерриториальныеУсловияПФР;
			Объект.ОсновнойБанковскийСчет = ОсновнойБанковскийСчет;
			Объект.ВидСтавокЕСНиПФР = ВидСтавокЕСНиПФР;
			Объект.НаименованиеПлательщикаПриПеречисленииНалогов = НаименованиеПлательщикаПриПеречисленииНалогов;
			Объект.ИностраннаяОрганизация = ИностраннаяОрганизация;
			Объект.ДатаРегистрации = ДатаРегистрации;
			Объект.КодОКОПФ = КодОКОПФ;
			Объект.НаименованиеОКОПФ = НаименованиеОКОПФ;
			Объект.КодОКФС = КодОКФС;
			Объект.НаименованиеОКФС = НаименованиеОКФС;
			Объект.СвидетельствоСерияНомер = СвидетельствоСерияНомер;
			Объект.СвидетельствоДатаВыдачи = СвидетельствоДатаВыдачи;
			Объект.СвидетельствоНаименованиеОргана = СвидетельствоНаименованиеОргана;
			Объект.СвидетельствоКодОргана = СвидетельствоКодОргана;
			Объект.СтранаРегистрации = СтранаРегистрации;
			Объект.СтранаПостоянногоМестонахождения = СтранаПостоянногоМестонахождения;
			Объект.КодВСтранеРегистрации = КодВСтранеРегистрации;
			Объект.ОГРН = ОГРН;
			Объект.НаименованиеИнострОрганизации = НаименованиеИнострОрганизации;
			Объект.РегистрационныйНомерФСС = РегистрационныйНомерФСС;
			Объект.НаименованиеИМНС = НаименованиеИМНС;
			Объект.КодОКВЭД = КодОКВЭД;
			Объект.НаименованиеОКВЭД = НаименованиеОКВЭД;
			Объект.КодОКОНХ = КодОКОНХ;
			Объект.ИндивидуальныйПредприниматель = ИндивидуальныйПредприниматель;
			Объект.УдалитьОбменЗадействован = УдалитьОбменЗадействован;
			Объект.ОбменКодАбонента = ОбменКодАбонента;
			Объект.ОбменКаталогОтправкиДанныхОтчетности = ОбменКаталогОтправкиДанныхОтчетности;
			Объект.ОбменКаталогПрограммыЭлектроннойПочты = ОбменКаталогПрограммыЭлектроннойПочты;
			Объект.РайонныйКоэффициентРФ = РайонныйКоэффициентРФ;
			Объект.ОтражатьВРегламентированномУчете = ОтражатьВРегламентированномУчете;
			Объект.КодИФНСПолучателя = КодИФНСПолучателя;
			Объект.НаименованиеТерриториальногоОрганаПФР = НаименованиеТерриториальногоОрганаПФР;
			Объект.НаименованиеСокращенное = НаименованиеСокращенное;
			Объект.ВидОбменаСКонтролирующимиОрганами = ВидОбменаСКонтролирующимиОрганами;
			Объект.УчетнаяЗаписьОбмена = УчетнаяЗаписьОбмена;
			Объект.КодОрганаПФР = КодОрганаПФР;
			Объект.КодОрганаФСГС = КодОрганаФСГС;
			Объект.ДополнительныйКодФСС = ДополнительныйКодФСС;
			Объект.КодПодчиненностиФСС = КодПодчиненностиФСС;
			Объект.ЦифровойИндексОбособленногоПодразделения = ЦифровойИндексОбособленногоПодразделения;
			Объект.РегистрационныйНомерТФОМС = РегистрационныйНомерТФОМС;
			Объект.ИПРегистрационныйНомерПФР = ИПРегистрационныйНомерПФР;
			Объект.ИПРегистрационныйНомерФСС = ИПРегистрационныйНомерФСС;
			Объект.ИПКодПодчиненностиФСС = ИПКодПодчиненностиФСС;
			Объект.ИПРегистрационныйНомерТФОМС = ИПРегистрационныйНомерТФОМС;
			Объект.НаименованиеТерриториальногоОрганаФСС = НаименованиеТерриториальногоОрганаФСС;
			return Объект;
		}
		
		private static readonly Hashtable Кэш = new Hashtable(1000);
		
		public static V82.СправочникиСсылка.Организации ВзятьИзКэша(byte[] УникальныйИдентификатор)
		{
			var УИ = new Guid(УникальныйИдентификатор);
			if (Кэш.ContainsKey(УИ))
			{
				return (V82.СправочникиСсылка.Организации)Кэш[УИ];
			}
			var Ссылка = new V82.СправочникиСсылка.Организации(УникальныйИдентификатор);
			Кэш.Add(УИ, Ссылка);
			return Ссылка;
		}
		
		public void СериализацияProtoBuf(Stream Поток)
		{
			Serializer.Serialize(Поток,this);
		}
		
		public string СериализацияJson()
		{
			return this.ToJson();
		}
		
		public string СериализацияXml()
		{
			return this.ToXml();
		}
	}
}